package fr.fchabanois.tutorial.jmockit;

public class HumanBeing extends AbstractLivingBeing
{

  public void live()
  {
    sleep();
    Entertainer.displayTvShow();
  }
  
  public void liveNoTv()
  {
    sleep();
    goToWork();
    eat();
  }
  
  public void liveAndMove()
  {
    sleep();
    doSport("foot");
  }
  
  public void liveWithLove() {
    sleep();
    String string = give("a kiss");
    say(string);
  }
  
  @Override
  public void liveYourDay()
  {
    chat();
    goToWork();
    chat();
    String string = give("a kiss");
    chat();
    doSport("foot");
    eat();
  }
  
  public void liveYourDay_avecCommentaire()
  {
    // wakeUp();
    // eat();
    // clean();
    chat();
    goToWork();
    chat();
    String string = give("a kiss");
    chat();
    doSport("foot");
     eat();
    // work();
    // getHome();
    // eat();
    // enjoyYourLife();
//     sleep();
    // dress("bonjou");
    // disabler com^pilation quand error
  }

  @Override
  public void sleep()
  {
    // TODO Auto-generated method stub
    System.out.println("eating");
  }

  @Override
  public void enjoyYourLife()
  {
    // TODO Auto-generated method stub

  }

  private void getHome()
  {
    // TODO Auto-generated method stub

  }

  protected void goToWork()
  {
    // TODO Auto-generated method stub
  }

  public void liveAndChat()
  {
    eat();
    chat();
  }
  
  public void liveAndChatMore()
  {
    chat();
    eat();
    chat();
  }
  
  private void chat()
  {
    // let's talk 
  }

  protected void doSport()
  {
    dress();
  }

  protected void dress()
  {

  }

  protected void doSport(String typeOfSport)
  {
    if ("basket".equals(typeOfSport))
    {
      dress("short");
    }
  }

  protected void dress(String typeOfClothes)
  {

  }

  protected void run()
  {

  }

  protected void takeAShower()
  {

  }

  public Object create(Object paramA, Object paramB)
  {
    return null;
  }

  protected String give(String something)
  {
    return something;
  }
  
  public void say(String s) {
    System.out.println(s);
  }
}
